package com.ruoyi.datastatistics.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseDO;
import lombok.*;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 大表日用量数据对象 t_terminals_dayfreeze_db
 *
 * @author ruoyi
 * @date 2023-09-07
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_terminals_dayfreeze_db")
public class TerminalsDayfreezeDb extends BaseDO {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableField("id")
    private Long id;

    /**
     * 设备归属水司
     */
    @TableField("tenant_id")
    private String tenantId;

    /**
     * 设备编号
     */
    @TableField("terminal_id")
    private String terminalId;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称", sort = 0)
    @TableField(exist = false)
    private String terminalName;

    /**
     * IMEI
     */
    @Excel(name = "IMEI", sort = 4)
    @TableField(exist = false)
    private String imei;

    /**
     * 位置识别编号
     */
    @TableField("location_nb")
    private String locationNb;

    /**
     * 上次累计正向读数
     */
    @TableField("read_number_o")
    private BigDecimal readNumberO;

    /**
     * 本次累计正向读数
     */
    @TableField("read_number_n")
    private BigDecimal readNumberN;

    /**
     * 上次累计反向读数
     */
    @TableField("reverse_number_o")
    private BigDecimal reverseNumberO;

    /**
     * 本次累计反向读数
     */
    @TableField("reverse_number_n")
    private BigDecimal reverseNumberN;

    /**
     * 上期冻结日的总流量
     */
    @Excel(name = "起始读数", sort = 11)
    @TableField("total_flow_o")
    private BigDecimal totalFlowO;

    /**
     * 本期冻结日的总流量
     */
    @Excel(name = "结束读数", sort = 12)
    @TableField("total_flow_n")
    private BigDecimal totalFlowN;

    /**
     * 上期正向日用量
     */
    @Excel(name = "昨日正向用量(m³)", sort = 13)
    @TableField("read_dosage_o")
    private BigDecimal readDosageO;

    /**
     * 本次正向日用量
     */
    @Excel(name = "正向用量(m³)", sort = 8)
    @TableField("read_dosage_n")
    private BigDecimal readDosageN;

    /**
     * 上次反向日用量
     */
    @Excel(name = "昨日反向用量(m³)", sort = 14)
    @TableField("reverse_dosage_o")
    private BigDecimal reverseDosageO;

    /**
     * 本次反向日用量
     */
    @Excel(name = "反向用量(m³)", sort = 9)
    @TableField("reverse_dosage_n")
    private BigDecimal reverseDosageN;

    /**
     * 上次总用量
     */
    @Excel(name = "昨日总用量(m³)", sort = 15)
    @TableField("dosage_o")
    private BigDecimal dosageO;

    /**
     * 本次总用量
     */
    @Excel(name = "总用量(m³)", sort = 10)
    @TableField("dosage_n")
    private BigDecimal dosageN;

    /**
     * 累计读数增长率
     */
    @TableField("read_growth_rate")
    private BigDecimal readGrowthRate;

    /**
     * 反向累计读数增长率
     */
    @TableField("reverse_growth_rate")
    private BigDecimal reverseGrowthRate;

    /**
     * 累计流量增长率
     */
    @TableField("total_flow_growth_rate")
    private BigDecimal totalFlowGrowthRate;

    /**
     * 正向用量增长比率
     */
    @TableField("read_dosage_growth_rate")
    private BigDecimal readDosageGrowthRate;

    /**
     * 反向用量增长比率
     */
    @TableField("reverse_dosage_growth_rate")
    private BigDecimal reverseDosageGrowthRate;

    /**
     * 用量增长比率
     */
    @TableField("dosage_growth_rate")
    private BigDecimal dosageGrowthRate;

    /**
     * 上次冻结时间
     */
    @TableField("get_time_o")
    private String getTimeO;

    /**
     * 本次冻结时间
     */
    @TableField("get_time_n")
    @Excel(name = "冻结时间", sort = -1)
    private String getTimeN;

    /**
     * 夜间最小瞬时流量
     */
    @TableField("read_dosage_for_night")
    private BigDecimal readDosageForNight;

    /**
     * 夜间最小瞬时流量出现时间
     */
    @TableField("reverse_dosage_for_night")
    private BigDecimal reverseDosageForNight;

    /**
     * 夜间最小流量
     */
    @Excel(name = "最小夜间流量(m³/h)", sort = 5)
    @TableField("min_night_flow")
    private BigDecimal minNightFlow;

    /**
     * 夜间最小流量出现时间
     */
    @TableField("min_night_flow_time")
    private String minNightFlowTime;

    /**
     * 昨日夜间最小流量
     */
    @TableField("min_night_flow_o")
    @Excel(name = "昨日最小夜间流量(m³/h)", sort = 6)
    private BigDecimal minNightFlowO;

    /**
     * 夜间最小流量环比
     */
    @TableField("min_night_flow_sequential")
    private BigDecimal minNightFlowSequential;

    /**
     * 瞬时流量平均值
     */
    @Excel(name = "平均值(m³/h)", sort = 7)
    @TableField("average_flow")
    private BigDecimal averageFlow;

    /**
     * 最小压力
     */
    @Excel(name = "最小压力(MPa)", sort = 16)
    @TableField("min_press_n")
    private BigDecimal minPressN;

    /**
     * 昨日最小压力
     */
    @Excel(name = "昨日最小压力(MPa)", sort = 17)
    @TableField("min_press_o")
    private BigDecimal minPressO;

    /**
     * 最小压力环比
     */
    @Excel(name = "环比（最小压力）(%)", sort = 18)
    @TableField("min_press_sequential")
    private BigDecimal minPressSequential;

    /**
     * 最大压力
     */
    @Excel(name = "最大压力(MPa)", sort = 19)
    @TableField("max_press_n")
    private BigDecimal maxPressN;

    /**
     * 昨日最大压力
     */
    @Excel(name = "昨日最大压力(MPa)", sort = 20)
    @TableField("max_pres_o")
    private BigDecimal maxPresO;

    /**
     * 最大压力环比
     */
    @Excel(name = "环比（最大压力）(%)", sort = 21)
    @TableField("max_press_sequential")
    private BigDecimal maxPressSequential;

    @TableField("create_time")
    // @Excel(name = "生成日期", sort = 22, dateFormat = "yyyy-MM-dd hh:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @TableField(exist = false)
    private String startTime;

    @TableField(exist = false)
    private String endTime;
    /**
     * 区域id
     */
    @TableField(exist = false)
    private String sheetId;

    /**
     * 终端地址
     */
    @Excel(name = "通讯地址", sort = 3)
    @TableField(exist = false)
    private String communicateAddress;
    /**
     * 出厂编号
     */
    @Excel(name = "出厂编号", sort = 2)
    @TableField(exist = false)
    private String firstSupplierId;

    /**
     * 用户编号
     */
    @Excel(name = "用户编号", sort = 1)
    @TableField(exist = false)
    private String userId;
    /**
     * 区域代码
     */
    @TableField(exist = false)
    private String sheetsCode;
    /**
     * 区域名称
     */
    @TableField(exist = false)
    private String sheetsName;
}
